package com.dawn.module.cms.controller.admin.category.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 类别管理新增/修改 Request VO")
@Data
public class CategorySaveReqVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "27116")
    private Long id;

    @Schema(description = "父ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18934")
    @NotNull(message = "父ID不能为空")
    private Long parentId;

    @Schema(description = "属性(1:顶部导航,2:底部导航,3:友情链接)", requiredMode = Schema.RequiredMode.REQUIRED)
    private String property;

    @Schema(description = "类型(1:列表,2:单页,3:链接)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotEmpty(message = "类型(1:列表,2:单页,3:链接)不能为空")
    private String type;

    @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
    @NotEmpty(message = "名称不能为空")
    private String name;

    @Schema(description = "副名称", example = "李四")
    private String subName;

    @Schema(description = "栏目key", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "栏目key不能为空")
    private String categoryKey;

    @Schema(description = "模块key")
    private String moduleKey;

    @Schema(description = "描述,SEO", example = "随便")
    private String description;

    @Schema(description = "拼音")
    private String pinyin;

    @Schema(description = "banner图")
    private String banner;

    @Schema(description = "图标")
    private String ico;

    @Schema(description = "关键字,SEO")
    private String keywords;

    @Schema(description = "路径")
    private String path;

    @Schema(description = "链接地址", example = "https://www.ynzykj.net")
    private String linkUrl;

    @Schema(description = "栏目模板")
    private String template;

    @Schema(description = "内容模板")
    private String contentTemplate;

    @Schema(description = "内容类型(1:图文,2:下载3:图片,4:视频)", example = "1")
    private String contentType;

    @Schema(description = "顺序", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "顺序不能为空")
    private Integer sort;

    @Schema(description = "是否显示", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否显示不能为空")
    private Boolean visible;

    @Schema(description = "是否搜索", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "是否搜索不能为空")
    private Boolean isSearch;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "状态不能为空")
    private Integer status;

    @Schema(description = "属性集合", example = "1,3,5")
    private Set<String> propertySet = Collections.emptySet(); // 兜底

}